var menuIds;
$(function() {
	getMenuTreeData();
	validateRule();

});
$.validator.setDefaults({
	submitHandler : function() {
		getAllSelectNodes();
		update();
	}
});
function loadMenuTree(menuTree) {
	$('#menuTree').jstree({
		"plugins" : [ "wholerow", "checkbox" ],
		'core' : {
			'data' : menuTree
		},
		"checkbox" : {

			// "keep_selected_style" : true,
			// "undetermined" : true
			"three_state" : false, // 父子节点关联
			// "cascade" : ' up'
		}
	});
	$('#menuTree').jstree('open_all');
	getRoleMenuRelation();
}
// 动态选中jstree 节点
function selectTreeNode(ids) {
	var ref = $('#menuTree').jstree(true);
	if (ref == null && ref == '') {
		setTimeout('selectTreeNode()', 50);
	} else {
		$("#menuTree").bind('ready.jstree', function(obj, e) {
			$("#menuTree").jstree('select_node', ids)
		})
	}

}
// 获取所有选中的节点id 返回的是一个数组
function getAllSelectNodes() {
	var ref = $('#menuTree').jstree(true); // 获得整个树
	menuIds = ref.get_selected(); // 获得所有选中节点的，返回值为数组
}
// 加载关联关系
function getRoleMenuRelation() {
	var roleId = $('#id').val();
	$.ajax({
		type : "GET",
		async : true,
		url : "/sys/menu/roleMenu/" + roleId,
		success : function(data) {
			selectTreeNode(data);
		}
	});
}
//
function getMenuTreeData() {
	var roleId = $('#id').val();
	$.ajax({
		type : "GET",
		async : true,
		url : "/sys/menu/tree",
		success : function(data) {
			loadMenuTree(data);
		}
	});
}
function update() {
	$('#menuIds').val(menuIds);
	var role = $('#signupForm').serialize();
	$.ajax({
		cache : true,
		type : "POST",
		url : "/sys/role/update",
		data : role, // 你的formid
		async : false,
		error : function(request) {
			alert("Connection error");
		},
		success : function(r) {
			if (r.code == 0) {
				parent.layer.msg(r.msg);
				parent.reLoad();
				var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
				parent.layer.close(index);

			} else {
				parent.layer.msg(r.msg);
			}

		}
	});
}
function validateRule() {
	var icon = "<i class='fa fa-times-circle'></i> ";
	$("#signupForm").validate({
		rules : {
			roleName : {
				required : true
			}
		},
		messages : {
			roleName : {
				required : icon + "请输入角色名"
			}
		}
	});
}